﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
using Schooll.Model;
using System.Reflection;
using NHibernate.Expression;
public partial class Secretaria_EditarAlumnos : System.Web.UI.Page
{
    static Alumnos oAlumnos = new Alumnos();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) {
            Clear();// FillGrid(); 
        }
        if (Request.QueryString["id"] != null)
        {
            if (txtIdAlumno.Text != Request.QueryString["id"])
            {
                Alumno a = Alumno.FindFirst(Expression.Like("IdAlumno", Int32.Parse(Request.QueryString["id"])));
                showData(a);
                cmdAccion.Text = "Modificar";
                cmdAccion.Visible = true;
                lblMensaje.Text = "";
            }
        }
    }

    private void showData(Alumno a)
    {

        txtIdAlumno.Text = Convert.ToString(a.IdAlumno);
        txtApellido.Text = a.Apellido;
        txtNombre.Text = a.Nombre;
        txtDomicilio.Text = a.Domicilio;
        txtTelefono.Text = a.Telefono;
        txtEmail.Text = a.Email;
        txtNroDocumento.Text = Convert.ToString(a.NroDocumento);
        TipoDocumento1.Value = a.IdTipoDoc;
        txtFechaNacimiento.Text = a.FechaNacimiento;
    }
    protected void cmdAccion_Click(object sender, EventArgs e)
    {
        Save();
       // FillGrid();
    }

    private void FillGrid()
    {
        GridView1.DataSource = Alumnos.Tabla("select IdAlumno, Apellido, Nombre from dbo.Alumnos order by apellido");
        GridView1.DataKeyNames = new string[] { "IdAlumno" };
        GridView1.AutoGenerateColumns = false;
        GridView1.DataBind();
        cmdAccion.Text = "Nuevo";
        cmdAccion.Visible = false;
        Clear();

    }

    void Save()
    {
        switch (cmdAccion.Text)
        {
            //case "Nuevo":
            //    FormToObjet();
            //    oAlumnos.Crear();
            //    break;
            case "Modificar":
                FormToObjet();
                lblMensaje.Text = "Se Actualizaron los datos del alumno ";
                //oAlumnos.Actualizar();
                break;
            case "Eliminar":
                Alumno a = Alumno.Find(int.Parse(txtIdAlumno.Text));
                lblMensaje.Text = "Se Elimino el alumno";
                a.DeleteAndFlush();
                break;
        }
    }

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {

        Alumno a = Alumno.FindFirst(Expression.Like("IdAlumno", Int32.Parse(GridView1.SelectedValue.ToString())));
        showData(a);
        cmdAccion.Text = "Modificar";
        cmdAccion.Visible = true;
    }

    void showData()
    {
        ObjetToForm();
    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        oAlumnos = Alumnos.Buscar("IdAlumno=" + GridView1.DataKeys[e.RowIndex].Value);
        showData();
        cmdAccion.Text = "Eliminar";
        cmdAccion.Visible = true;
    }

    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {

    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
    }
    void FormToObjet()
    {
        Alumno a = Alumno.Find(int.Parse(txtIdAlumno.Text));
        
        //oAlumnos.IdAlumno = int.Parse( txtIdAlumno.Text);
        a.Apellido = txtApellido.Text;
        a.Nombre = txtNombre.Text;
        a.Domicilio = txtDomicilio.Text;
        a.Telefono = txtTelefono.Text;
        a.Email = txtEmail.Text;
        if (txtNroDocumento.Text.Length > 0)
        {
            a.NroDocumento = Convert.ToInt32(txtNroDocumento.Text);
            a.IdTipoDoc = TipoDocumento1.Value;
            a.FechaNacimiento = txtFechaNacimiento.Text;
        }
        a.Activo = 1;
        a.UpdateAndFlush();
    }
    void ObjetToForm()
    {
        txtIdAlumno.Text = Convert.ToString(oAlumnos.IdAlumno);
        txtApellido.Text = oAlumnos.Apellido;
        txtNombre.Text = oAlumnos.Nombre;
        txtDomicilio.Text = oAlumnos.Domicilio;
        txtTelefono.Text = oAlumnos.Telefono;
        txtEmail.Text = oAlumnos.Email;
        txtNroDocumento.Text = Convert.ToString(oAlumnos.NroDocumento);
     //   TipoDocumento1.Value = oAlumnos.IdTipoDoc;
        txtFechaNacimiento.Text = oAlumnos.FechaNacimiento;
    }
    void Clear()
    {
        txtIdAlumno.Text = "";
        txtApellido.Text = "";
        txtNombre.Text = "";
        txtDomicilio.Text = "";
        txtTelefono.Text = "";
        txtEmail.Text = "";
        txtNroDocumento.Text = "";
        TipoDocumento1.Value = "-1";
        txtFechaNacimiento.Text = "";
    }

}
